﻿using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;

using System;
using System.Collections.Generic;
using System.Linq;

namespace Nemerle2.Compiler
{
  /// <summary>
  /// Description of ICustomAttributes.
  /// </summary>
  public interface ICustomAttributes
  {
    CustomAttributeNames                                  : list[string]            { get; }
    CustomAttributes                                      : list[ICustomAttribute]  { get; }
    CustomAttribute[attributeType     : ITypeInfo]        : list[ICustomAttribute]  { get; }
    CustomAttribute[attributeFullName : string]           : list[ICustomAttribute]  { get; }

    IsCustomAttributeDefined(attributeType      : ITypeInfo)  : bool;
    IsCustomAttributeDefined(attributeFullName  : string)           : bool;
  }
}
